import 'package:flutter/material.dart';

class TextDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // 设置状态栏的字体颜色
        // Brightness.light 黑色字体
        // Brightness.dark 白色字体
        brightness: Brightness.dark,
        title: Text('文本控件'),
      ),
      // 是否延伸位置到AppBar
      extendBodyBehindAppBar: false,
      // 垂直线性布局，类似于Android中的LinearLayout控件
      // textDirection：表示水平方向子组件的布局顺序(是左对齐还是右对齐)
      //                TextDirection.ltr 或者 TextDirection.rtl
      // mainAxisSize：表示主轴方向占用的空间，默认是MainAxisSize.max(相当于match_parent)
      //               MainAxisSize.min(相当于wrap_parent)
      // mainAxisAlignment：表示子组件在主轴所占用的空间内对齐方式，
      //                    如果mainAxisSize值为MainAxisSize.min，则此属性无意义，
      //                    textDirection是mainAxisAlignment的参考系
      // crossAxisAlignment：表示子组件在纵轴方向的对齐方式，纵轴的长度则取决于他们最大子元素的长度
      //                     若要将Column的宽度指定为屏幕宽度，可通过ConstrainedBox或SizedBox强制更改宽度
      //                     如:constraints: BoxConstraints(minWidth: double.infinity)，
      //                     也可使用Center组件
      // verticalDirection：表示垂直方向的布局方式，VerticalDirection.down从上到下，
      //                    或者VerticalDirection.up从下到上
      body: Column(
        textDirection: TextDirection.ltr,
        mainAxisSize: MainAxisSize.max,
        mainAxisAlignment: MainAxisAlignment.start,
        crossAxisAlignment: CrossAxisAlignment.center,
        verticalDirection: VerticalDirection.down,
        children: <Widget>[
          // fontSize：该属性和Text的textScaleFactor都用于控制字体大小。但是有两个主要区别：
          // fontSize可以精确指定字体大小，而textScaleFactor只能通过缩放比例来控制。
          // textScaleFactor主要是用于系统字体大小设置改变时对Flutter应用字体进行全局调整，
          // fontSize通常用于单个文本，字体大小不会跟随系统字体大小变化。
          // height：该属性用于指定行高，但它并不是一个绝对值，而是一个因子，具体的行高等于fontSize*height
          Text(
            '红色+黑色删除线+25号',
            style: TextStyle(
              color: const Color(0xffff0000), //字体颜色
              decoration: TextDecoration.lineThrough, //删除线
              decorationColor: const Color(0xff000000), //删除线颜色
              fontSize: 25.0, //字体大小
            ),
          ),
          Text(
            '橙色+下划线+24号',
            style: TextStyle(
              color: const Color(0xffff9900), //字体颜色
              decoration: TextDecoration.underline, //下划线
              fontSize: 24.0, //字体大小
            ),
          ),
          Text(
            '虚线上划线+23号+倾斜',
            style: TextStyle(
              decoration: TextDecoration.overline, //上划线
              decorationStyle: TextDecorationStyle.dashed, //虚线
              fontSize: 23.0, //字体大小
              fontStyle: FontStyle.italic, //斜体
            ),
          ),
          Text(
            '虚线上划线+24号+倾斜加粗',
            style: TextStyle(
              decoration: TextDecoration.overline, //上划线
              decorationStyle: TextDecorationStyle.dashed, //虚线
              fontSize: 24.0, //字体大小
              fontStyle: FontStyle.italic, //斜体
              fontWeight: FontWeight.bold, //加粗
            ),
          ),
          Text(
            '24号+倾斜加粗+字间距',
            style: TextStyle(
              fontSize: 24.0, //字体大小
              fontStyle: FontStyle.italic, //斜体
              fontWeight: FontWeight.bold, //加粗
              letterSpacing: 6.0, //字间距
            ),
          ),
          Text(
            '24号+倾斜加粗+字间距+自定义字体',
            style: TextStyle(
              fontSize: 24.0, //字体大小
              fontFamily: 'kang', //加载字体
              fontStyle: FontStyle.italic, //斜体
              fontWeight: FontWeight.bold, //加粗
              letterSpacing: 6.0, //字间距
            ),
          ),
        ],
      ),
    );
  }
}
